In wireless communications, digital data is transmitted over the air via analog waveforms. Binary information is mapped into complex-valued modulated symbols representing one or more bits. Optional pulse shaping filtering and/or other processing is applied to the symbols and the signal is up-converted to RF. At the receiver, the signal is down-converted and optionally filtered, processed and sampled. The transmitted symbols are then estimated from the received samples. Individual bits embedded in each symbol are extracted during demodulation.
In some cases, demodulation involves making hard decisions on the received symbols, i.e., finding the constellation point closest to the received value and using the bit sequence associated with the constellation point as the transmitted bit sequence. This approach is used when the transmitted data is not coded or when only hard decoding algorithms are employed. Performance can be improved by using error correction codes to transmit the data. One conventional encoder is a Turbo encoder. A Turbo encoder typically includes two parallel concatenated convolutional encoders. A data stream is input to the encoder and each constituent encoder produces a parity stream. Thus, two parity bits are output by the Turbo encoder for each systematic bit, yielding a code rate of ⅓. Optionally, puncturing or repetition can be applied to achieve any desired code rate larger than 0 and smaller than 1.
At the receiver, a corresponding Turbo decoder exchanges soft information extracted from the systematic bits between constituent decoders, iteratively refining the systematic bit soft information. The Turbo decoder operates on initial soft information for both the systematic and parity bits. The initial soft bit estimates are typically generated by a demodulator. The soft bit estimates are typically expressed as log-likelihood ratios (LLRs), where LLR is the log of the ratio of the probability that a given bit is “1” to the probability that the bit is “0”. Code constraints placed on the Turbo decoder are utilized each iteration to increase the reliability of the per-systematic bit LLR values. The transmitted information sequence is recovered by making hard decisions on the revised soft estimates of the systematic bits after a number of decoding iterations.
The LLR values of the parity bits are computed during demodulation and used during decoding, but are not conventionally revised as are the systematic bit LLR values. For example, receivers employing interference cancellation may regenerate transmitted symbols using the soft systematic and parity bits. The regenerated symbols are then used to cancel interference. However, only the systematic bit LLR values are typically updated during the traditional Turbo decoding process. This in turn reduces the accuracy of the regenerated soft symbols because both the systematic bits and corresponding parity bits are needed to reconstruct transmitted symbols.